package utils

import (
	"errors"
	"strconv"
	"strings"
)

// IsAdmins 判断是否是超级管理员权限
func IsAdmins(roles []uint) bool {
	for _, v := range roles {
		if v == 1 {
			return true
		}
	}
	return false
}

// ExtractRolesValues 提取角色值的辅助函数，并转换为 []int 类型
func ExtractRolesValues(rolesStr string) []int {
	// 将 rolesStr 字符串按逗号分割，得到角色值的字符串切片
	rolesStrValues := strings.Split(rolesStr, ",")

	// 将字符串切片转换为 []int 类型切片
	rolesValues := make([]int, len(rolesStrValues))
	for i, valueStr := range rolesStrValues {
		intValue, err := strconv.Atoi(valueStr)
		if err != nil {
			// 错误处理逻辑，例如跳过无效的值
			continue
		}
		rolesValues[i] = intValue
	}

	return rolesValues
}
func ConvertToUint(value any) (uint, error) {
	// 尝试将 value 转换为 uint
	if intValue, ok := value.(uint); ok {
		return intValue, nil // 转换成功，返回 uint 值和 nil 错误
	}
	return 0, errors.New("conversion to uint failed")
}
